package VN.EDU.IMIC.PROJECTLEADER.NGUYENVANDOAN.OOP.EXCERCISEDEMO.EX06_OBJECTS;

public class MODELS {
    /***
     * Tính diện tích
     * @param obj
     * @param shOpt = 0: Circle; shOpt = 1: Octagon
     * @return
     */
    public double getArea(Object obj, short shOpt) {
        double result = 0;
        switch (shOpt) {
        // TH: Xử lý với Tam giác
        case 0: {
            // 1. Mapping thông tin từ kiểu Object --> CircleEntity
            CIRCLE_ENTITY objEntity = (CIRCLE_ENTITY) obj;

            // 2. Thực thi tính diện tích
            result = objEntity.Area(objEntity);
        }
            break;

        // TH: Xử lý với Bát giác
        case 1: {
            // 1. Mapping thông tin từ kiểu Object --> CircleEntity
            OCTAGON_ENTITY objEntity = (OCTAGON_ENTITY) obj;

            // 2. Thực thi tính diện tích
            result = objEntity.Area(objEntity);
        } break;
        }
        return result;
    }

    public double getPerrimetter(Object obj) {
        // 1. Mapping thông tin từ kiểu Object --> CircleEntity
        CIRCLE_ENTITY objEntity = (CIRCLE_ENTITY) obj;

        // 2. Thực thi tính diện tích
        return objEntity.Perrimetter(objEntity);
    }
}
